Cuaderno de prueba proyecto Series de tiempo univariadas

library(readr)

Carga de datos desde repositorio

# Datos acciones Bancolombia DIARIAS (01-01-2018 al 31-08-2022)
url_1 = 'https://raw.githubusercontent.com/decardenass/SeriesDeTiempoUnivariadas2022_2/main/Proyecto/Datos/Datos%20hist%C3%B3ricos%20BIC%20diaria_3.csv'

# Datos precipitación MENSUALES (01-2000 al 08-2022)
url_2 = 'https://raw.githubusercontent.com/decardenass/SeriesDeTiempoUnivariadas2022_2/main/Proyecto/Datos/Datos%20precipitaci%C3%B3n%20mensual.csv'

df_1 = read.csv(url_1, sep=";")
df_2 = read.csv(url_2, sep=";")

Ajuste de fecha

df_1$Fecha = as.Date(df_1$Fecha)
df_2$Fecha = as.Date(df_2$Fecha)

Serie de tiempo 1 —– Acciones Bancolombia —–

df_1.ts = ts(df_1$`Último`, frequency = 365, start=c(2018, 01, 02))
plot.ts(df_1.ts, main = "Precio al cierre de acciones Bancolombia diario", xlab = "Tiempo", ylab = "Precio")

Diagrama de autocorrelación acciones Bancolombia

## ----- Diagrama de autocorrelación acciones Bancolombia ----- ###

acf(df_1['Último'], lag.max = NULL,
    type = "correlation",
    plot = TRUE,
    na.action = na.fail,
    main = "Autocorrelación acciones Bancolombia")

Diagrama de autocorrelación parcial acciones Bancolombia

## ----- Diagrama de autocorrelación parcial acciones Bancolombia ----- ###

pacf(df_1['Último'], lag.max = NULL,
    plot = TRUE,
    na.action = na.fail,
    main = "Autocorrelación parcial acciones Bancolombia")

Regresión para determinar tendencia de acciones Bancolombia

summary(fit_df_1 <- lm(df_1.ts~time(df_1.ts), na.action=NULL))
## 
## Call:
## lm(formula = df_1.ts ~ time(df_1.ts), na.action = NULL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -15937.5  -3615.2   -258.8   5014.0  11871.1 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)   141483.0   373172.9   0.379    0.705
## time(df_1.ts)    -53.4      184.8  -0.289    0.773
## 
## Residual standard error: 5603 on 1135 degrees of freedom
## Multiple R-squared:  7.357e-05,  Adjusted R-squared:  -0.0008074 
## F-statistic: 0.08351 on 1 and 1135 DF,  p-value: 0.7726

Gráfico con recta de tendencia acciones Bancolombia

# Gráfico con recta de tendencia
plot(df_1.ts, ylab="Precio accion") 
abline(fit_df_1,col = "red") # Se añade la recta ajusta

Gráfico con tendencia eliminada de acciones Bancolombia

###Eliminamos la tendencia con la predicción la recta
ElimiTenddf_1.ts=df_1.ts-predict(fit_df_1)
plot(ElimiTenddf_1.ts, ylab="Precio accion", main="Serie Bancolombia Sin tendencia")

Mapa de calor acciones Bancolombia

TSstudio::ts_heatmap(ElimiTenddf_1.ts,title = "Mapa de Calor - acciones Bancolombia")

_____

Serie de tiempo 2 —– Precipitaciones —–

df_2.ts = ts(df_2$`Valor`, frequency = 12, start=c(2000, 1))
plot.ts(df_2.ts, main = "Precipitación mensual", xlab = "Tiempo", ylab = "Pm")

## ----- Diagrama de autocorrelación precipitaciones ----- ###

acf(df_2['Valor'], lag.max = NULL,
    type = "correlation",
    plot = TRUE,
    na.action = na.fail,
    main = "Autocorrelación precipitaciones")

## ----- Diagrama de autocorrelación parcial precipitaciones ----- ###

pacf(df_2['Valor'], lag.max = NULL,
    plot = TRUE,
    na.action = na.fail,
    main = "Autocorrelación parcial precipitaciones")

summary(fit_df_2 <- lm(df_2.ts~time(df_2.ts), na.action=NULL))
## 
## Call:
## lm(formula = df_2.ts ~ time(df_2.ts), na.action = NULL)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -104.732  -47.633   -9.912   44.579  182.150 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)
## (Intercept)   -1154.0210  1181.6858  -0.977    0.330
## time(df_2.ts)     0.6244     0.5876   1.063    0.289
## 
## Residual standard error: 62.36 on 267 degrees of freedom
## Multiple R-squared:  0.004212,   Adjusted R-squared:  0.0004821 
## F-statistic: 1.129 on 1 and 267 DF,  p-value: 0.2889
# Gráfico con recta de tendencia
plot(df_2.ts, ylab="Pm") 
abline(fit_df_2,col = "red") # Se añade la recta ajusta

###Eliminamos la tendencia con la predicción la recta
ElimiTenddf_2.ts=df_2.ts-predict(fit_df_2)
plot(ElimiTenddf_2.ts,main="Serie lluvias Sin tendencia", ylab="Pm")

library(TSstudio)
ts_heatmap(ElimiTenddf_2.ts,title = "Mapa de Calor - Lluvias")